# WRF-MCV achieved work and optional follow-ups

$(call REGISTER_TASK,WRF_MCV_PHASEA1,done,essential,MCV_EXISTING,Add WRF compatible NetCDF writer attributes for parity,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASEA1,wrf-mcv,,P3,wrf wrf-mcv existing parity,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASEA1,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASEA1.md)

$(call REGISTER_TASK,WRF_MCV_PHASEA2,done,essential,MCV_EXISTING,Enforce parity thresholds in CI pipelines,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASEA2,wrf-mcv,,P3,wrf wrf-mcv existing parity thresholds,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASEA2,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASEA2.md)

$(call REGISTER_TASK,WRF_MCV_PHASEA2_OPT1,done,optional,MCV_EXISTING,Compare multi time outputs using nc diff convenience mode,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASEA2_OPT1,wrf-mcv,,P3,wrf wrf-mcv existing optional parity,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASEA2_OPT1,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASEA2_OPT1.md)

$(call REGISTER_TASK,WRF_MCV_PHASEA2_OPT2,done,optional,MCV_EXISTING,Calibrate per variable parity caps and promote thresholds,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASEA2_OPT2,wrf-mcv,,P3,wrf wrf-mcv existing optional parity,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASEA2_OPT2,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASEA2_OPT2.md)

$(call REGISTER_TASK,WRF_MCV_PHASEB1,done,essential,MCV_EXISTING,Provision WRF MCV worktree and plugin API hooks,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASEB1,wrf-mcv,,P3,wrf wrf-mcv existing worktree,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASEB1,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASEB1.md)

$(call REGISTER_TASK,WRF_MCV_PHASEB2,done,essential,MCV_EXISTING,Build accuracy harness with MPI ladder coverage,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASEB2,wrf-mcv,,P3,wrf wrf-mcv existing accuracy,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASEB2,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASEB2.md)

$(call REGISTER_TASK,WRF_MCV_PHASEB3,done,essential,MCV_EXISTING,Harden physics coupling maps for conservation,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASEB3,wrf-mcv,,P3,wrf wrf-mcv existing physics,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASEB3,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASEB3.md)

$(call REGISTER_TASK,WRF_MCV_PHASEB_OPT1,done,optional,MCV_EXISTING,Add JSON output unit tests for edge cases,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASEB_OPT1,wrf-mcv,,P3,wrf wrf-mcv existing optional tests,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASEB_OPT1,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASEB_OPT1.md)

$(call REGISTER_TASK,WRF_MCV_PHASEB4,done,essential,MCV_EXISTING,Maintain gravity wave order gate across runs,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASEB4,wrf-mcv,,P3,wrf wrf-mcv existing parity guard,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASEB4,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASEB4.md)

$(call REGISTER_TASK,WRF_MCV_PHASEB5,done,essential,MCV_EXISTING,Ensure MPI invariance across ranks for MCV core,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASEB5,wrf-mcv,,P3,wrf wrf-mcv existing mpi,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASEB5,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASEB5.md)

$(call REGISTER_TASK,WRF_MCV_PHASEC1,done,essential,MCV_EXISTING,Aggregate verification suite across accuracy and ladder jobs,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASEC1,wrf-mcv,,P3,wrf wrf-mcv existing verification,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASEC1,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASEC1.md)

$(call REGISTER_TASK,WRF_MCV_PHASEC2,done,essential,MCV_EXISTING,Guarantee determinism and nightly long run stability,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASEC2,wrf-mcv,,P3,wrf wrf-mcv existing determinism,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASEC2,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASEC2.md)

$(call REGISTER_TASK,WRF_MCV_PHASEC3,done,essential,MCV_EXISTING,Emit performance microbench JSON and guards,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASEC3,wrf-mcv,,P3,wrf wrf-mcv existing performance,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASEC3,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASEC3.md)

$(call REGISTER_TASK,WRF_MCV_PHASEC_OPT1,done,optional,MCV_EXISTING,Extend MPI invariance checks to additional patterns,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASEC_OPT1,wrf-mcv,,P3,wrf wrf-mcv existing optional mpi,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASEC_OPT1,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASEC_OPT1.md)

$(call REGISTER_TASK,WRF_MCV_PHASED1,done,essential,MCV_EXISTING,Maintain unified smoke logs and comparators in CI,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASED1,wrf-mcv,,P3,wrf wrf-mcv existing smoke,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASED1,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASED1.md)

$(call REGISTER_TASK,WRF_MCV_PHASED_OPT1,done,optional,MCV_EXISTING,Extend validation sweeps for wider ranks in CI,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASED_OPT1,wrf-mcv,,P3,wrf wrf-mcv existing optional validation,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASED_OPT1,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASED_OPT1.md)

$(call REGISTER_TASK,WRF_MCV_PHASED_OPT2,done,optional,MCV_EXISTING,Add WRF jl parity row to cross dycore summary,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_PHASED_OPT2,wrf-mcv,,P3,wrf wrf-mcv existing optional summary,)
$(call REGISTER_SUCCESS,WRF_MCV_PHASED_OPT2,$(WRF_SUCCESS_DIR)/WRF_MCV_PHASED_OPT2.md)

$(call REGISTER_TASK,WRF_MCV_NEXT_OPT1,optional,optional,NEXT_STEPS,Enable performance guard in PR CI once baseline recorded,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_NEXT_OPT1,wrf-mcv,,P3,wrf wrf-mcv next optional performance,)
$(call REGISTER_SUCCESS,WRF_MCV_NEXT_OPT1,$(WRF_SUCCESS_DIR)/WRF_MCV_NEXT_OPT1.md)

$(call REGISTER_TASK,WRF_MCV_NEXT_OPT2,optional,optional,NEXT_STEPS,Archive parity and compare artefacts to long term storage,$(call WRF_REF,comparisons/WRF_MCV_roadmap_todo.md))
$(call REGISTER_META,WRF_MCV_NEXT_OPT2,wrf-mcv,,P3,wrf wrf-mcv next optional archive,)
$(call REGISTER_SUCCESS,WRF_MCV_NEXT_OPT2,$(WRF_SUCCESS_DIR)/WRF_MCV_NEXT_OPT2.md)
